package com.smart.system.domain.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "设备数据")
public class DeviceDataDtoPolice {

    @Schema(description = "设备 ID", example = "device123")
    private String deviceid;

    @Schema(description = "经度", example = "113.24523")
    private float longitude;

    @Schema(description = "纬度", example = "22.4556")
    private float latitude;

    @Schema(description = "基站信息", example = "baseStationInfo")
    private String lbsinfo;

    @Schema(description = "地址描述 (URL 编码后的)", example = "encodedAddress")
    private String address;

    @Schema(description = "位置类型 (0=为 LBS 定位，1=位 LBS+WIFI 定位，2=gps 定位)", example = "0")
    private int addressType;

    @Schema(description = "名字信息 (电子围栏报警时是电子围栏的围栏名字)", example = "fenceName")
    private String name;

    @Schema(description = "报警值 (只有 type=2、type=4 时才会有定位数据，其他 type 值没有定位数据)", example = "2")
    private int type;

    // toString method for debugging

    @Override
    public String toString() {
        return "DeviceData{" +
                "deviceId='" + deviceid + '\'' +
                ", longitude=" + longitude +
                ", latitude=" + latitude +
                ", lbsInfo='" + lbsinfo + '\'' +
                ", address='" + address + '\'' +
                ", addressType=" + addressType +
                ", name='" + name + '\'' +
                ", type=" + type +
                '}';
    }

    /**
     * type=1；
     * - type=2 sos 报警；
     * - type=3 电量过低；
     * - type=4 跌倒报警；
     * - type=5  心率超标；
     * - type=6 血压超标；
     * - type=7 充电器拔出；
     * - type=8 久坐提醒；
     * - type=9 充电器连接；
     * - type=10 血糖超标
     * - type=11 设备已开机
     * - type=12 血氧超标
     * - type=13 手表已经摘除
     * - type=22 普通电话呼叫
     * - type=23 电子围栏报警-进入围栏
     * - type=24  电子围栏报警-离开围栏
     * - type=25 体温超标
     * - type=36 漏服药物
     * - type=38 手表已经佩戴
     * - type=40 语音"救命"
     * - type=100 服务号码呼叫
     * - type=101 患者咨询,请回电
     * - type=102 已签到
     * - type=103 房间里有人,活动探测仪
     * - type=104 房间里无人,活动探测仪
     * - type=105 房间开灯,活动探测仪
     * - type=106 房间关灯,活动探测仪
     * - type=107 房间有人说话,活动探测
     * - type=108 房间无人说话,活动探测
     * - type=109 房间有人走动,活动探测
     * - type=110 房间无人走动,活动探测
     * - type=120 离床
     * - type=122 上班打卡
     * - type=123 下班打卡
     * - type=129 设备离线
     */

}
